/**
 * 
 */
package monster.comm.util;

import java.lang.reflect.Field;

import org.springframework.util.ReflectionUtils;

/**
 * @author wanghong
 * 2012-12-26
 * ReflectUtil.java
 * 反射工具类
 */
public class ReflectUtil {
	/**
	 * 在target中查找名为fieldName且类型为type的属性
	 * @param target
	 * @param fieldName
	 * @param type
	 * @return
	 */
	public static boolean hasField(Object target, String fieldName, Class<?> type) {  
        return ReflectionUtils.findField(target.getClass(), fieldName, type) == null;  
    }  
   /**
    * 从 target得到fieldName的值
    * @param target
    * @param fieldName
    * @return
    */
    public static Object getFieldValue(Object target, String fieldName) {  
        Field field = ReflectionUtils.findField(target.getClass(), fieldName);  
        ReflectionUtils.makeAccessible(field);  
        return ReflectionUtils.getField(field, target);  
    }  
     /**
      * 设置target属性为fieldName的值为value
      * @param target
      * @param fieldName
      * @param value
      */
    public static void setFieldValue(Object target, String fieldName, Object value) {  
        Field field = ReflectionUtils.findField(target.getClass(), fieldName);  
        ReflectionUtils.makeAccessible(field);  
        ReflectionUtils.setField(field, target, value);  
    }  
}
